{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "<!--\n",
    "tags: [\"code generation\", \"debugging\"]\n",
    "description: |\n",
    "    Use conversable language learning model agents to solve tasks and provide automatic feedback through a comprehensive example of writing, executing, and debugging Python code to compare stock price changes.\n",
    "-->\n",
    "\n",
    "# Task Solving with Code Generation, Execution and Debugging\n",
    "\n",
    "AutoGen offers conversable LLM agents, which can be used to solve various tasks with human or automatic feedback, including tasks that require using tools via code.\n",
    "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n",
    "\n",
    "In this notebook, we demonstrate how to use `AssistantAgent` and `UserProxyAgent` to write code and execute the code. Here `AssistantAgent` is an LLM-based agent that can write Python code (in a Python coding block) for a user to execute for a given task. `UserProxyAgent` is an agent which serves as a proxy for the human user to execute the code written by `AssistantAgent`, or automatically execute the code. Depending on the setting of `human_input_mode` and `max_consecutive_auto_reply`, the `UserProxyAgent` either solicits feedback from the human user or returns auto-feedback based on the result of code execution (success or failure and corresponding outputs) to `AssistantAgent`. `AssistantAgent` will debug the code and suggest new code if the result contains error. The two agents keep communicating to each other until the task is done.\n",
    "\n",
    "````{=mdx}\n",
    ":::info Requirements\n",
    "Install `pyautogen`:\n",
    "```bash\n",
    "pip install pyautogen\n",
    "```\n",
    "\n",
    "For more information, please refer to the [installation guide](/docs/installation/).\n",
    ":::\n",
    "````"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from typing import Dict, Union\n",
    "\n",
    "from IPython import get_ipython\n",
    "from IPython.display import display, Image\n",
    "\n",
    "import autogen\n",
    "\n",
    "config_list = autogen.config_list_from_json(\n",
    "    \"OAI_CONFIG_LIST\",\n",
    "    # filter_dict={\n",
    "    #     \"model\": [\"gpt-4\", \"gpt-4-0314\", \"gpt4\", \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n",
    "    # },\n",
    ")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "````{=mdx}\n",
    ":::tip\n",
    "Learn more about configuring LLMs for agents [here](/docs/llm_configuration).\n",
    ":::\n",
    "````"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example Task: Check Stock Price Change\n",
    "\n",
    "In the example below, let's see how to use the agents in AutoGen to write a python script and execute the script. This process involves constructing a `AssistantAgent` to serve as the assistant, along with a `UserProxyAgent` that acts as a proxy for the human user. In this example demonstrated below, when constructing the `UserProxyAgent`,  we select the `human_input_mode` to \"NEVER\". This means that the `UserProxyAgent` will not solicit feedback from the human user. It stops replying when the limit defined by `max_consecutive_auto_reply` is reached, or when `is_termination_msg()` returns true for the received message."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33muser_proxy\u001b[0m (to assistant):\n",
      "\n",
      "What date is today? Compare the year-to-date gain for META and TESLA.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant What date is today? Compare the year-to-date gain for META and TESLA. None\n",
      "\u001b[33massistant\u001b[0m (to user_proxy):\n",
      "\n",
      "To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\n",
      "\n",
      "First, let's write a Python script to get the current date:\n",
      "\n",
      "```python\n",
      "# filename: get_current_date.py\n",
      "\n",
      "from datetime import datetime\n",
      "\n",
      "# Get the current date\n",
      "current_date = datetime.now()\n",
      "\n",
      "# Print the current date in YYYY-MM-DD format\n",
      "print(current_date.strftime('%Y-%m-%d'))\n",
      "```\n",
      "\n",
      "Please save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n",
      "recipitent sending user_proxy To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\n",
      "\n",
      "First, let's write a Python script to get the current date:\n",
      "\n",
      "```python\n",
      "# filename: get_current_date.py\n",
      "\n",
      "from datetime import datetime\n",
      "\n",
      "# Get the current date\n",
      "current_date = datetime.now()\n",
      "\n",
      "# Print the current date in YYYY-MM-DD format\n",
      "print(current_date.strftime('%Y-%m-%d'))\n",
      "```\n",
      "\n",
      "Please save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data. None\n",
      "\u001b[33muser_proxy\u001b[0m (to assistant):\n",
      "\n",
      "exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "2024-02-16\n",
      "\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "2024-02-16\n",
      " None\n",
      "\u001b[33massistant\u001b[0m (to user_proxy):\n",
      "\n",
      "Great, today's date is 2024-02-16.\n",
      "\n",
      "Next, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\n",
      "\n",
      "I will provide you with a Python script that will:\n",
      "1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\n",
      "2. Calculate the YTD gain for each stock.\n",
      "\n",
      "Please execute the following Python script:\n",
      "\n",
      "```python\n",
      "# filename: compare_ytd_gains.py\n",
      "\n",
      "import yfinance as yf\n",
      "from datetime import datetime\n",
      "\n",
      "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n",
      "tickers = [\"META\", \"TSLA\"]\n",
      "\n",
      "# Define the start and end dates for the YTD period\n",
      "start_date = datetime(2024, 1, 1)\n",
      "end_date = datetime(2024, 2, 16)\n",
      "\n",
      "# Function to calculate YTD gain\n",
      "def calculate_ytd_gain(ticker):\n",
      "    # Fetch historical data for the ticker\n",
      "    data = yf.download(ticker, start=start_date, end=end_date)\n",
      "    \n",
      "    # Get the first and last closing prices\n",
      "    initial_price = data['Close'].iloc[0]\n",
      "    final_price = data['Close'].iloc[-1]\n",
      "    \n",
      "    # Calculate the YTD gain\n",
      "    ytd_gain = ((final_price - initial_price) / initial_price) * 100\n",
      "    return ytd_gain\n",
      "\n",
      "# Calculate and print the YTD gains for both stocks\n",
      "ytd_gains = {}\n",
      "for ticker in tickers:\n",
      "    ytd_gains[ticker] = calculate_ytd_gain(ticker)\n",
      "\n",
      "print(f\"YTD gain for META: {ytd_gains['META']:.2f}%\")\n",
      "print(f\"YTD gain for TSLA: {ytd_gains['TSLA']:.2f}%\")\n",
      "```\n",
      "\n",
      "Before running this script, ensure that you have the `yfinance` library installed. If it's not installed, you can install it using the following command:\n",
      "\n",
      "```sh\n",
      "pip install yfinance\n",
      "```\n",
      "\n",
      "After installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is sh)...\u001b[0m\n",
      "recipitent sending user_proxy Great, today's date is 2024-02-16.\n",
      "\n",
      "Next, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\n",
      "\n",
      "I will provide you with a Python script that will:\n",
      "1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\n",
      "2. Calculate the YTD gain for each stock.\n",
      "\n",
      "Please execute the following Python script:\n",
      "\n",
      "```python\n",
      "# filename: compare_ytd_gains.py\n",
      "\n",
      "import yfinance as yf\n",
      "from datetime import datetime\n",
      "\n",
      "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n",
      "tickers = [\"META\", \"TSLA\"]\n",
      "\n",
      "# Define the start and end dates for the YTD period\n",
      "start_date = datetime(2024, 1, 1)\n",
      "end_date = datetime(2024, 2, 16)\n",
      "\n",
      "# Function to calculate YTD gain\n",
      "def calculate_ytd_gain(ticker):\n",
      "    # Fetch historical data for the ticker\n",
      "    data = yf.download(ticker, start=start_date, end=end_date)\n",
      "    \n",
      "    # Get the first and last closing prices\n",
      "    initial_price = data['Close'].iloc[0]\n",
      "    final_price = data['Close'].iloc[-1]\n",
      "    \n",
      "    # Calculate the YTD gain\n",
      "    ytd_gain = ((final_price - initial_price) / initial_price) * 100\n",
      "    return ytd_gain\n",
      "\n",
      "# Calculate and print the YTD gains for both stocks\n",
      "ytd_gains = {}\n",
      "for ticker in tickers:\n",
      "    ytd_gains[ticker] = calculate_ytd_gain(ticker)\n",
      "\n",
      "print(f\"YTD gain for META: {ytd_gains['META']:.2f}%\")\n",
      "print(f\"YTD gain for TSLA: {ytd_gains['TSLA']:.2f}%\")\n",
      "```\n",
      "\n",
      "Before running this script, ensure that you have the `yfinance` library installed. If it's not installed, you can install it using the following command:\n",
      "\n",
      "```sh\n",
      "pip install yfinance\n",
      "```\n",
      "\n",
      "After installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA. None\n",
      "\u001b[33muser_proxy\u001b[0m (to assistant):\n",
      "\n",
      "exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "YTD gain for META: 39.78%\n",
      "YTD gain for TSLA: -19.31%\n",
      "\n",
      "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n",
      "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n",
      "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n",
      "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n",
      "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n",
      "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n",
      "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n",
      "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n",
      "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n",
      "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n",
      "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n",
      "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n",
      "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n",
      "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n",
      "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n",
      "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n",
      "\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "YTD gain for META: 39.78%\n",
      "YTD gain for TSLA: -19.31%\n",
      "\n",
      "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n",
      "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n",
      "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n",
      "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n",
      "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n",
      "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n",
      "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n",
      "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n",
      "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n",
      "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n",
      "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n",
      "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n",
      "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n",
      "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n",
      "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n",
      "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n",
      " None\n",
      "\u001b[33massistant\u001b[0m (to user_proxy):\n",
      "\n",
      "The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is approximately 39.78%, and the YTD loss for TESLA (Tesla, Inc.) is approximately -19.31%. This means that so far this year, META's stock price has increased by about 39.78%, while TESLA's stock price has decreased by about 19.31%.\n",
      "\n",
      "Please note that stock prices are subject to market fluctuations, and the values provided are based on the closing prices from the start of the year to today's date.\n",
      "\n",
      "TERMINATE\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n"
     ]
    }
   ],
   "source": [
    "# create an AssistantAgent named \"assistant\"\n",
    "assistant = autogen.AssistantAgent(\n",
    "    name=\"assistant\",\n",
    "    llm_config={\n",
    "        \"cache_seed\": 41,  # seed for caching and reproducibility\n",
    "        \"config_list\": config_list,  # a list of OpenAI API configurations\n",
    "        \"temperature\": 0,  # temperature for sampling\n",
    "    },  # configuration for autogen's enhanced inference API which is compatible with OpenAI API\n",
    ")\n",
    "# create a UserProxyAgent instance named \"user_proxy\"\n",
    "user_proxy = autogen.UserProxyAgent(\n",
    "    name=\"user_proxy\",\n",
    "    human_input_mode=\"NEVER\",\n",
    "    max_consecutive_auto_reply=10,\n",
    "    is_termination_msg=lambda x: x.get(\"content\", \"\").rstrip().endswith(\"TERMINATE\"),\n",
    "    code_execution_config={\n",
    "        \"work_dir\": \"coding\",\n",
    "        \"use_docker\": False,  # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n",
    "    },\n",
    ")\n",
    "# the assistant receives a message from the user_proxy, which contains the task description\n",
    "chat_res = user_proxy.initiate_chat(\n",
    "    assistant,\n",
    "    message=\"\"\"What date is today? Compare the year-to-date gain for META and TESLA.\"\"\",\n",
    "    summary_method=\"reflection_with_llm\",\n",
    ")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The example above involves code execution. In AutoGen, code execution is triggered automatically by the `UserProxyAgent` when it detects an executable code block in a received message and no human user input is provided. This process occurs in a designated working directory, using a Docker container by default. Unless a specific directory is specified, AutoGen defaults to the `autogen/extensions` directory. Users have the option to specify a different working directory by setting the `work_dir` argument when constructing a new instance of the `UserProxyAgent`.\n",
    "\n",
    "The whole chat is auto-generated."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check chat results\n",
    "The `initiate_chat` method returns a `ChatResult` object, which is a dataclass object storing information about the chat. Currently, it includes the following attributes:\n",
    "\n",
    "- `chat_history`: a list of chat history.\n",
    "- `summary`: a string of chat summary. A summary is only available if a summary_method is provided when initiating the chat.\n",
    "- `cost`: a tuple of (total_cost, total_actual_cost), where total_cost is a dictionary of cost information, and total_actual_cost is a dictionary of information on the actual incurred cost with cache.\n",
    "- `human_input`: a list of strings of human inputs solicited during the chat. (Note that since we are setting `human_input_mode` to `NEVER` in this notebook, this list is always empty.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Chat history: [{'content': 'What date is today? Compare the year-to-date gain for META and TESLA.', 'role': 'assistant'}, {'content': \"To get the current date, we can use Python's `datetime` module. After that, we will need to retrieve the year-to-date (YTD) gain for both META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.). We can do this by fetching the stock prices from the beginning of the year and the current stock prices, then calculating the percentage change.\\n\\nFirst, let's write a Python script to get the current date:\\n\\n```python\\n# filename: get_current_date.py\\n\\nfrom datetime import datetime\\n\\n# Get the current date\\ncurrent_date = datetime.now()\\n\\n# Print the current date in YYYY-MM-DD format\\nprint(current_date.strftime('%Y-%m-%d'))\\n```\\n\\nPlease save the above code in a file named `get_current_date.py` and execute it to get today's date. After that, we will proceed to the next step of fetching the stock data.\", 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\n2024-02-16\\n', 'role': 'assistant'}, {'content': 'Great, today\\'s date is 2024-02-16.\\n\\nNext, we will fetch the stock prices for META (Meta Platforms, Inc.) and TESLA (Tesla, Inc.) from the beginning of the year until today. To do this, we can use the `yfinance` library in Python, which allows us to retrieve historical stock data.\\n\\nI will provide you with a Python script that will:\\n1. Fetch the stock prices for META and TESLA from the beginning of the year (2024-01-01) to today (2024-02-16).\\n2. Calculate the YTD gain for each stock.\\n\\nPlease execute the following Python script:\\n\\n```python\\n# filename: compare_ytd_gains.py\\n\\nimport yfinance as yf\\nfrom datetime import datetime\\n\\n# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\\ntickers = [\"META\", \"TSLA\"]\\n\\n# Define the start and end dates for the YTD period\\nstart_date = datetime(2024, 1, 1)\\nend_date = datetime(2024, 2, 16)\\n\\n# Function to calculate YTD gain\\ndef calculate_ytd_gain(ticker):\\n    # Fetch historical data for the ticker\\n    data = yf.download(ticker, start=start_date, end=end_date)\\n    \\n    # Get the first and last closing prices\\n    initial_price = data[\\'Close\\'].iloc[0]\\n    final_price = data[\\'Close\\'].iloc[-1]\\n    \\n    # Calculate the YTD gain\\n    ytd_gain = ((final_price - initial_price) / initial_price) * 100\\n    return ytd_gain\\n\\n# Calculate and print the YTD gains for both stocks\\nytd_gains = {}\\nfor ticker in tickers:\\n    ytd_gains[ticker] = calculate_ytd_gain(ticker)\\n\\nprint(f\"YTD gain for META: {ytd_gains[\\'META\\']:.2f}%\")\\nprint(f\"YTD gain for TSLA: {ytd_gains[\\'TSLA\\']:.2f}%\")\\n```\\n\\nBefore running this script, ensure that you have the `yfinance` library installed. If it\\'s not installed, you can install it using the following command:\\n\\n```sh\\npip install yfinance\\n```\\n\\nAfter installing `yfinance`, save the script as `compare_ytd_gains.py` and execute it to compare the YTD gains for META and TESLA.', 'role': 'user'}, {'content': 'exitcode: 0 (execution succeeded)\\nCode output: \\nYTD gain for META: 39.78%\\nYTD gain for TSLA: -19.31%\\n\\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\n', 'role': 'assistant'}, {'content': \"The year-to-date (YTD) gain for META (Meta Platforms, Inc.) is approximately 39.78%, and the YTD loss for TESLA (Tesla, Inc.) is approximately -19.31%. This means that so far this year, META's stock price has increased by about 39.78%, while TESLA's stock price has decreased by about 19.31%.\\n\\nPlease note that stock prices are subject to market fluctuations, and the values provided are based on the closing prices from the start of the year to today's date.\\n\\nTERMINATE\", 'role': 'user'}]\n",
      "Summary: Today's date is 2024-02-16. The year-to-date gain for META (Meta Platforms, Inc.) is approximately 39.78%, while TESLA (Tesla, Inc.) has experienced a year-to-date loss of about -19.31%.\n",
      "Cost info: ({'total_cost': 0.21233999999999997, 'gpt-4': {'cost': 0.21233999999999997, 'prompt_tokens': 5348, 'completion_tokens': 865, 'total_tokens': 6213}}, {'total_cost': 0.1866, 'gpt-4': {'cost': 0.1866, 'prompt_tokens': 4858, 'completion_tokens': 681, 'total_tokens': 5539}})\n"
     ]
    }
   ],
   "source": [
    "print(\"Chat history:\", chat_res.chat_history)\n",
    "\n",
    "print(\"Summary:\", chat_res.summary)\n",
    "print(\"Cost info:\", chat_res.cost)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example Task: Plot Chart"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33muser_proxy\u001b[0m (to assistant):\n",
      "\n",
      "Plot a chart of their stock price change YTD and save to stock_price_ytd.png.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant Plot a chart of their stock price change YTD and save to stock_price_ytd.png. None\n",
      "\u001b[33massistant\u001b[0m (to user_proxy):\n",
      "\n",
      "To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with libraries such as `matplotlib` for plotting and `yfinance` for fetching the stock data.\n",
      "\n",
      "Here is the Python script that will perform the task:\n",
      "\n",
      "```python\n",
      "# filename: plot_stock_price_ytd.py\n",
      "\n",
      "import yfinance as yf\n",
      "import matplotlib.pyplot as plt\n",
      "from datetime import datetime\n",
      "\n",
      "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n",
      "tickers = [\"META\", \"TSLA\"]\n",
      "\n",
      "# Define the start and end dates for the YTD period\n",
      "start_date = datetime(2024, 1, 1)\n",
      "end_date = datetime(2024, 2, 16)\n",
      "\n",
      "# Fetch historical data for both tickers\n",
      "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n",
      "\n",
      "# Normalize the data to 100 (percentage change) based on the first closing price\n",
      "normalized_data = (data / data.iloc[0]) * 100\n",
      "\n",
      "# Plot the data\n",
      "plt.figure(figsize=(14, 7))\n",
      "for ticker in tickers:\n",
      "    plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n",
      "\n",
      "# Add titles and labels\n",
      "plt.title('Stock Price Change YTD')\n",
      "plt.xlabel('Date')\n",
      "plt.ylabel('Normalized Price (Base 100)')\n",
      "plt.legend()\n",
      "\n",
      "# Save the plot to a PNG file\n",
      "plt.savefig('stock_price_ytd.png')\n",
      "\n",
      "# Show the plot\n",
      "plt.show()\n",
      "```\n",
      "\n",
      "Before running this script, ensure that you have the `matplotlib` library installed. If it's not installed, you can install it using the following command:\n",
      "\n",
      "```sh\n",
      "pip install matplotlib\n",
      "```\n",
      "\n",
      "After installing `matplotlib`, save the script as `plot_stock_price_ytd.py` and execute it. The script will display the chart and save it as `stock_price_ytd.png` in the current directory.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n",
      "recipitent sending user_proxy To plot a chart of the YTD stock price changes for META and TESLA and save it to a file named `stock_price_ytd.png`, we will use Python with libraries such as `matplotlib` for plotting and `yfinance` for fetching the stock data.\n",
      "\n",
      "Here is the Python script that will perform the task:\n",
      "\n",
      "```python\n",
      "# filename: plot_stock_price_ytd.py\n",
      "\n",
      "import yfinance as yf\n",
      "import matplotlib.pyplot as plt\n",
      "from datetime import datetime\n",
      "\n",
      "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n",
      "tickers = [\"META\", \"TSLA\"]\n",
      "\n",
      "# Define the start and end dates for the YTD period\n",
      "start_date = datetime(2024, 1, 1)\n",
      "end_date = datetime(2024, 2, 16)\n",
      "\n",
      "# Fetch historical data for both tickers\n",
      "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n",
      "\n",
      "# Normalize the data to 100 (percentage change) based on the first closing price\n",
      "normalized_data = (data / data.iloc[0]) * 100\n",
      "\n",
      "# Plot the data\n",
      "plt.figure(figsize=(14, 7))\n",
      "for ticker in tickers:\n",
      "    plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n",
      "\n",
      "# Add titles and labels\n",
      "plt.title('Stock Price Change YTD')\n",
      "plt.xlabel('Date')\n",
      "plt.ylabel('Normalized Price (Base 100)')\n",
      "plt.legend()\n",
      "\n",
      "# Save the plot to a PNG file\n",
      "plt.savefig('stock_price_ytd.png')\n",
      "\n",
      "# Show the plot\n",
      "plt.show()\n",
      "```\n",
      "\n",
      "Before running this script, ensure that you have the `matplotlib` library installed. If it's not installed, you can install it using the following command:\n",
      "\n",
      "```sh\n",
      "pip install matplotlib\n",
      "```\n",
      "\n",
      "After installing `matplotlib`, save the script as `plot_stock_price_ytd.py` and execute it. The script will display the chart and save it as `stock_price_ytd.png` in the current directory. None\n",
      "\u001b[33muser_proxy\u001b[0m (to assistant):\n",
      "\n",
      "exitcode: 1 (execution failed)\n",
      "Code output: \n",
      "Traceback (most recent call last):\n",
      "  File \"plot_stock_price_ytd.py\", line 4, in <module>\n",
      "    import matplotlib.pyplot as plt\n",
      "ModuleNotFoundError: No module named 'matplotlib'\n",
      "\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant exitcode: 1 (execution failed)\n",
      "Code output: \n",
      "Traceback (most recent call last):\n",
      "  File \"plot_stock_price_ytd.py\", line 4, in <module>\n",
      "    import matplotlib.pyplot as plt\n",
      "ModuleNotFoundError: No module named 'matplotlib'\n",
      " None\n",
      "\u001b[33massistant\u001b[0m (to user_proxy):\n",
      "\n",
      "It appears that the `matplotlib` library is not installed in your Python environment. To proceed, you need to install the `matplotlib` library. Please run the following command to install it:\n",
      "\n",
      "```sh\n",
      "pip install matplotlib\n",
      "```\n",
      "\n",
      "After the installation is complete, please try running the `plot_stock_price_ytd.py` script again. Here is the script for your convenience:\n",
      "\n",
      "```python\n",
      "# filename: plot_stock_price_ytd.py\n",
      "\n",
      "import yfinance as yf\n",
      "import matplotlib.pyplot as plt\n",
      "from datetime import datetime\n",
      "\n",
      "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n",
      "tickers = [\"META\", \"TSLA\"]\n",
      "\n",
      "# Define the start and end dates for the YTD period\n",
      "start_date = datetime(2024, 1, 1)\n",
      "end_date = datetime(2024, 2, 16)\n",
      "\n",
      "# Fetch historical data for both tickers\n",
      "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n",
      "\n",
      "# Normalize the data to 100 (percentage change) based on the first closing price\n",
      "normalized_data = (data / data.iloc[0]) * 100\n",
      "\n",
      "# Plot the data\n",
      "plt.figure(figsize=(14, 7))\n",
      "for ticker in tickers:\n",
      "    plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n",
      "\n",
      "# Add titles and labels\n",
      "plt.title('Stock Price Change YTD')\n",
      "plt.xlabel('Date')\n",
      "plt.ylabel('Normalized Price (Base 100)')\n",
      "plt.legend()\n",
      "\n",
      "# Save the plot to a PNG file\n",
      "plt.savefig('stock_price_ytd.png')\n",
      "\n",
      "# Show the plot\n",
      "plt.show()\n",
      "```\n",
      "\n",
      "Execute the script after installing `matplotlib` to generate and save the chart.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is sh)...\u001b[0m\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is python)...\u001b[0m\n",
      "recipitent sending user_proxy It appears that the `matplotlib` library is not installed in your Python environment. To proceed, you need to install the `matplotlib` library. Please run the following command to install it:\n",
      "\n",
      "```sh\n",
      "pip install matplotlib\n",
      "```\n",
      "\n",
      "After the installation is complete, please try running the `plot_stock_price_ytd.py` script again. Here is the script for your convenience:\n",
      "\n",
      "```python\n",
      "# filename: plot_stock_price_ytd.py\n",
      "\n",
      "import yfinance as yf\n",
      "import matplotlib.pyplot as plt\n",
      "from datetime import datetime\n",
      "\n",
      "# Define the tickers for Meta Platforms, Inc. and Tesla, Inc.\n",
      "tickers = [\"META\", \"TSLA\"]\n",
      "\n",
      "# Define the start and end dates for the YTD period\n",
      "start_date = datetime(2024, 1, 1)\n",
      "end_date = datetime(2024, 2, 16)\n",
      "\n",
      "# Fetch historical data for both tickers\n",
      "data = yf.download(tickers, start=start_date, end=end_date)['Close']\n",
      "\n",
      "# Normalize the data to 100 (percentage change) based on the first closing price\n",
      "normalized_data = (data / data.iloc[0]) * 100\n",
      "\n",
      "# Plot the data\n",
      "plt.figure(figsize=(14, 7))\n",
      "for ticker in tickers:\n",
      "    plt.plot(normalized_data.index, normalized_data[ticker], label=ticker)\n",
      "\n",
      "# Add titles and labels\n",
      "plt.title('Stock Price Change YTD')\n",
      "plt.xlabel('Date')\n",
      "plt.ylabel('Normalized Price (Base 100)')\n",
      "plt.legend()\n",
      "\n",
      "# Save the plot to a PNG file\n",
      "plt.savefig('stock_price_ytd.png')\n",
      "\n",
      "# Show the plot\n",
      "plt.show()\n",
      "```\n",
      "\n",
      "Execute the script after installing `matplotlib` to generate and save the chart. None\n",
      "\u001b[33muser_proxy\u001b[0m (to assistant):\n",
      "\n",
      "exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "Collecting matplotlib\n",
      "  Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n",
      "Collecting contourpy>=1.0.1 (from matplotlib)\n",
      "  Using cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n",
      "Collecting cycler>=0.10 (from matplotlib)\n",
      "  Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n",
      "Collecting fonttools>=4.22.0 (from matplotlib)\n",
      "  Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl.metadata (159 kB)\n",
      "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/159.1 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n",
      "\u001b[2K     \u001b[91m━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/159.1 kB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━\u001b[0m \u001b[32m153.6/159.1 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib)\n",
      "  Using cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n",
      "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (1.26.4)\n",
      "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (23.2)\n",
      "Collecting pillow>=8 (from matplotlib)\n",
      "  Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.7 kB)\n",
      "Collecting pyparsing>=2.3.1 (from matplotlib)\n",
      "  Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)\n",
      "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n",
      "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n",
      "Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB)\n",
      "\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n",
      "\u001b[2K   \u001b[91m━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/7.5 MB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.9/7.5 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/7.5 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/7.5 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m5.8/7.5 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m33.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hUsing cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (242 kB)\n",
      "Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)\n",
      "Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)\n",
      "\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/2.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m81.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hUsing cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n",
      "Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB)\n",
      "Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n",
      "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n",
      "Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 pillow-10.2.0 pyparsing-3.1.1\n",
      "\n",
      "Figure(1400x700)\n",
      "\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "Collecting matplotlib\n",
      "  Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n",
      "Collecting contourpy>=1.0.1 (from matplotlib)\n",
      "  Using cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.8 kB)\n",
      "Collecting cycler>=0.10 (from matplotlib)\n",
      "  Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n",
      "Collecting fonttools>=4.22.0 (from matplotlib)\n",
      "  Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl.metadata (159 kB)\n",
      "\u001b[?25l     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/159.1 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n",
      "\u001b[2K     \u001b[91m━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.0/159.1 kB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K     \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━\u001b[0m \u001b[32m153.6/159.1 kB\u001b[0m \u001b[31m2.1 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m159.1/159.1 kB\u001b[0m \u001b[31m2.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hCollecting kiwisolver>=1.3.1 (from matplotlib)\n",
      "  Using cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n",
      "Requirement already satisfied: numpy<2,>=1.21 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (1.26.4)\n",
      "Requirement already satisfied: packaging>=20.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (23.2)\n",
      "Collecting pillow>=8 (from matplotlib)\n",
      "  Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (9.7 kB)\n",
      "Collecting pyparsing>=2.3.1 (from matplotlib)\n",
      "  Using cached pyparsing-3.1.1-py3-none-any.whl.metadata (5.1 kB)\n",
      "Requirement already satisfied: python-dateutil>=2.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n",
      "Requirement already satisfied: six>=1.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n",
      "Downloading matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl (7.5 MB)\n",
      "\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/7.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n",
      "\u001b[2K   \u001b[91m━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.3/7.5 MB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.9/7.5 MB\u001b[0m \u001b[31m11.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/7.5 MB\u001b[0m \u001b[31m14.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/7.5 MB\u001b[0m \u001b[31m21.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━\u001b[0m \u001b[32m5.8/7.5 MB\u001b[0m \u001b[31m29.7 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.5/7.5 MB\u001b[0m \u001b[31m33.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hUsing cached contourpy-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (242 kB)\n",
      "Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)\n",
      "Downloading fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl (2.8 MB)\n",
      "\u001b[?25l   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/2.8 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.8/2.8 MB\u001b[0m \u001b[31m81.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hUsing cached kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n",
      "Using cached pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB)\n",
      "Using cached pyparsing-3.1.1-py3-none-any.whl (103 kB)\n",
      "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n",
      "Successfully installed contourpy-1.2.0 cycler-0.12.1 fonttools-4.49.0 kiwisolver-1.4.5 matplotlib-3.8.3 pillow-10.2.0 pyparsing-3.1.1\n",
      "\n",
      "Figure(1400x700)\n",
      " None\n",
      "\u001b[33massistant\u001b[0m (to user_proxy):\n",
      "\n",
      "The script has successfully executed, and the chart displaying the stock price change YTD for META and TESLA has been plotted and saved as `stock_price_ytd.png`.\n",
      "\n",
      "You should now have the file `stock_price_ytd.png` in your current directory, which contains the chart of the YTD stock price changes for both companies.\n",
      "\n",
      "TERMINATE\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n"
     ]
    }
   ],
   "source": [
    "# followup of the previous question\n",
    "user_proxy.send(\n",
    "    recipient=assistant,\n",
    "    message=\"\"\"Plot a chart of their stock price change YTD and save to stock_price_ytd.png.\"\"\",\n",
    ")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's display the generated figure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABXgAAAK8CAYAAABV1dcbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAADDjElEQVR4nOzdd3hUZfrG8Xtmkkz6pJGEQELvvYlIFxDEhgI2UEFsP0VXcdXV3VXXVREbyoqCimLDgoJdFAWkCEiX3iGhJJSQ3iYz5/dHyEgMSIJJTib5fq5rrsyc855znhNwJHfeeV6LYRiGAAAAAAAAAABex2p2AQAAAAAAAACAc0PACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAAAAAA4KUIeAEAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FwAsAAAAAAAAAXoqAFwAAAAAAAAC8FAEvAAAAAAAAAHgpAl4AAAAAAAAA8FIEvAAAAAAAAADgpQh4AQAAAAAAAMBLEfACAAAAAAAAgJci4AUAAAAAAAAAL0XACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAAAAAA4KUIeAEAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FwAsAAAAAAAAAXoqAFwAAAAAAAAC8FAEvAAAAAAAAAHgpAl4AAAAAAAAA8FIEvAAAAAAAAADgpQh4AQAAAAAAAMBLEfACAAAAAAAAgJci4AUAAAAAAAAAL0XACwAAAAAAAABeioAXAAAAAAAAALwUAS8AAAAAAAAAeCkCXgAAAAAAAADwUgS8AAAAAAAAAOClCHgBAAAAAAAAwEsR8AIAAAAAAACAlyLgBQAAAAAAAAAvRcALAAAAAAAAAF6KgBcAAAAAAAAAvBQBLwAAAAAAAAB4KQJeAAAAAAAAAPBSBLwAAAAos0WLFslisejTTz815fozZ86UxWLRvn37TLl+WfTr109t27Y1uwwAAADUEgS8AAAA1dzGjRs1YsQINWjQQP7+/qpXr54GDRqk//3vfyXGPf300/r888/NKbIM9u3bJ4vF4nnYbDYlJCToyiuv1Pr1680u76wyMjL0n//8Rx06dFBwcLACAgLUtm1bPfTQQzp06JDZ5VUJp9Opdu3aqUmTJsrNzS21f9++fQoMDNTIkSNL/Fn/2WPRokWl/m74+voqKipKF1xwgR555BElJiaacLcAAADewWIYhmF2EQAAADi9X375Rf3791dCQoJuuukmxcbGKikpSStWrNDu3bu1a9cuz9jg4GCNGDFCM2fOrLR6Fi1apP79+2v27NkaMWJEuY7dt2+fGjVqpOuuu05Dhw6Vy+XS1q1b9dprryk/P18rVqxQx44d//QcLpdLTqdTdrtdFovlL9xJ+ezZs0cDBw5UYmKiRo4cqV69esnPz0+//fabPvzwQ0VERGjHjh2SimbwHjt2TJs2baqy+qrS8uXL1bNnT/3jH//Q008/XWLfpZdeqqVLl2rr1q366aefSux79913NX/+fL333nsltg8aNEi5ubkl/m643W6dOHFCq1at0pw5c2SxWDRjxgxde+21lX5/AAAA3sbH7AIAAABwZk899ZQcDodWrVqlsLCwEvuOHDliTlF/UefOnTV69GjP6549e+ryyy/Xa6+9punTp5/2mOzsbAUFBclms8lms1VVqZKkwsJCXXXVVUpJSdGiRYvUq1evEvufeuopTZo0qUprMlOPHj10xx136Pnnn9eoUaPUpk0bSdJnn32mb775Rq+++qrq1q1b4s9YklasWKH58+eX2i7J03Ljj383JGn//v266KKLdNNNN6lVq1bq0KFD5dwYAACAl6JFAwAAQDW2e/dutWnTplS4K0nR0dGe5xaLRdnZ2XrnnXc8H3MfM2aMZ/+6det08cUXKzQ0VMHBwRowYIBWrFhR6pxpaWm677771LBhQ9ntdtWvX1833nijjh07dsYa8/Pzdemll8rhcOiXX34p9z1eeOGFkqS9e/dK+r3P7s8//6w777xT0dHRql+/fol9f+zB+91336lv374KCQlRaGiounXrplmzZpUYs3LlSg0ZMkQOh0OBgYHq27evli1bdtb6PvvsM23YsEH//Oc/S4W7khQaGqqnnnqq1PYtW7aof//+CgwMVL169fTss8+W2F9QUKBHH31UXbp0kcPhUFBQkHr37q2FCxeWGFfcvuD555/X66+/riZNmshut6tbt25atWpVqevOnj1brVu3lr+/v9q2bau5c+dqzJgxatiwYYlxbrdbL730ktq0aSN/f3/FxMTo9ttv14kTJ876PZk4caKioqJ0xx13yDAMZWVl6d577/WEvxWpQYMGmjlzpgoKCkp9DwEAAMAMXgAAgGqtQYMGWr58uTZt2vSnC3e99957uuWWW3TeeefptttukyQ1adJEkrR582b17t1boaGhevDBB+Xr66vp06erX79++vnnn9W9e3dJUlZWlnr37q2tW7fq5ptvVufOnXXs2DF9+eWXOnDggKKiokpdNzc3V1dccYVWr16tH3/8Ud26dSv3Pe7evVuSFBkZWWL7nXfeqTp16ujRRx9Vdnb2GY+fOXOmbr75ZrVp00YPP/ywwsLCtG7dOs2bN0/XX3+9JGnBggW6+OKL1aVLFz322GOyWq16++23deGFF2rJkiU677zzznj+L7/8UpJ0ww03lPmeTpw4oSFDhuiqq67S1VdfrU8//VQPPfSQ2rVrp4svvlhSUU/fN998U9ddd51uvfVWZWZmasaMGRo8eLB+/fXXUu0qZs2apczMTN1+++2yWCx69tlnddVVV2nPnj3y9fWVJH3zzTe65ppr1K5dO02cOFEnTpzQuHHjVK9evVI13n777Zo5c6bGjh2re+65R3v37tUrr7yidevWadmyZZ5zno7D4dCUKVM0cuRIvfnmm9qyZYtSUlL03XffVUrrjB49eqhJkyaaP39+hZ8bAADA6xkAAACotn744QfDZrMZNpvN6NGjh/Hggw8a33//vVFQUFBqbFBQkHHTTTeV2j5s2DDDz8/P2L17t2fboUOHjJCQEKNPnz6ebY8++qghyZgzZ06pc7jdbsMwDGPhwoWGJGP27NlGZmam0bdvXyMqKspYt27dWe9l7969hiTjP//5j3H06FEjOTnZWLRokdGpUydDkvHZZ58ZhmEYb7/9tiHJ6NWrl1FYWFjiHMX79u7daxiGYaSlpRkhISFG9+7djdzc3NPW7Ha7jWbNmhmDBw/2bDMMw8jJyTEaNWpkDBo06E/r7tSpk+FwOM56f8X69u1rSDLeffddz7b8/HwjNjbWGD58uGdbYWGhkZ+fX+LYEydOGDExMcbNN9/s2Vb8fYuMjDRSU1M927/44gtDkvHVV195trVr186oX7++kZmZ6dm2aNEiQ5LRoEEDz7YlS5YYkowPPvigxPXnzZt32u1ncumllxoOh8Ow2WzGww8//Kdj77rrLuNMP34U3+Nzzz13xuOvuOIKQ5KRnp5eptoAAABqC1o0AAAAVGODBg3S8uXLdfnll2vDhg169tlnNXjwYNWrV88zs/TPuFwu/fDDDxo2bJgaN27s2V63bl1df/31Wrp0qTIyMiQVtSLo0KGDrrzyylLn+eOszPT0dF100UXatm2bFi1adNbF0U712GOPqU6dOoqNjVW/fv20e/duTZo0SVdddVWJcbfeeutZ++3Onz9fmZmZ+sc//iF/f//T1rx+/Xrt3LlT119/vY4fP65jx47p2LFjys7O1oABA7R48WK53e4zXiMjI0MhISFlvj+paMG7U3vJ+vn56bzzztOePXs822w2m/z8/CQVtUtITU1VYWGhunbtqrVr15Y65zXXXKPw8HDP6969e0uS55yHDh3Sxo0bdeONNyo4ONgzrm/fvmrXrl2Jc82ePVsOh0ODBg3yfD+OHTumLl26KDg4uFSbiDOZOnWqCgoKFB8fr3//+99lOuZcFd9TZmZmpV4HAADA29CiAQAAoJrr1q2b5syZo4KCAm3YsEFz587V5MmTNWLECK1fv16tW7c+47FHjx5VTk6OWrRoUWpfq1at5Ha7lZSUpDZt2mj37t0aPnx4mWq69957lZeXp3Xr1nkW2Sqr2267TSNHjpTValVYWJjatGkju91ealyjRo3Oeq7i9g5/1r5i586dkqSbbrrpjGPS09NLhKenCg0NLRHMlkX9+vVLheLh4eH67bffSmx755139MILL2jbtm1yOp2e7ae794SEhFLnk+Tpmbt//35JUtOmTUsd27Rp0xKh8c6dO5Wenl6ij/OpyrqAX0JCgqKjo9WmTRsFBASU6ZhzlZWVJUnlDtsBAABqOgJeAAAAL+Hn56du3bqpW7duat68ucaOHavZs2frscceq/JarrjiCn300Ud65pln9O6778pqLfsHw5o1a6aBAweedVxFBYbFs3Ofe+65M840PnXG6x+1bNlS69atU1JSkuLj48t0zTPNPDYMw/P8/fff15gxYzRs2DA98MADio6Ols1m08SJEz3BdXnPWVZut1vR0dH64IMPTru/Tp065T5nZdu0aZOio6MVGhpqdikAAADVCgEvAACAF+ratask6fDhw55tp1vcqk6dOgoMDNT27dtL7du2bZusVqsntGzSpIk2bdpUpusPGzZMF110kcaMGaOQkBC99tpr53Ibf1nxQnKbNm067czVU8eEhoaWKVj+o8suu0wffvih3n//fT388MPnXuwffPrpp2rcuLHmzJlT4s/uXAP7Bg0aSJJ27dpVat8ftzVp0kQ//vijevbsWekzbyvC8uXLtXv37hJtLwAAAFCEHrwAAADV2MKFC087Q/Pbb7+VpBKtF4KCgpSWllZinM1m00UXXaQvvvhC+/bt82xPSUnRrFmz1KtXL8+MyOHDh3taQPzR6Wq48cYbNWXKFE2bNk0PPfTQudzeX3bRRRcpJCREEydOVF5eXol9xTV36dJFTZo00fPPP+/5mP+pjh49+qfXGDFihNq1a6ennnpKy5cvL7U/MzNT//znP8tde/GM3FO/tytXrjztNcoiLi5Obdu21bvvvlviPn/++Wdt3LixxNirr75aLpdL//3vf0udp7CwsNTfIzPt379fY8aMkZ+fnx544AGzywEAAKh2mMELAABQjd19993KycnRlVdeqZYtW6qgoEC//PKLPv74YzVs2FBjx471jO3SpYt+/PFHvfjii4qLi1OjRo3UvXt3Pfnkk5o/f7569eqlO++8Uz4+Ppo+fbry8/P17LPPeo5/4IEH9Omnn2rkyJG6+eab1aVLF6WmpurLL7/UtGnT1KFDh1L1jR8/XhkZGfrnP/8ph8OhRx55pEq+L8VCQ0M1efJk3XLLLerWrZuuv/56hYeHa8OGDcrJydE777wjq9WqN998UxdffLHatGmjsWPHql69ejp48KAWLlyo0NBQffXVV2e8hq+vr+bMmaOBAweqT58+uvrqq9WzZ0/5+vpq8+bNmjVrlsLDw/XUU0+Vq/ZLL71Uc+bM0ZVXXqlLLrlEe/fu1bRp09S6devTBtFl8fTTT+uKK65Qz549NXbsWJ04cUKvvPKK2rZtW+Kcffv21e23366JEydq/fr1uuiii+Tr66udO3dq9uzZevnllzVixIhzquGvWLt2rd5//3253W6lpaVp1apV+uyzz2SxWPTee++pffv2VV4TAABAdUfACwAAUI09//zzmj17tr799lu9/vrrKigoUEJCgu68807961//UlhYmGfsiy++qNtuu03/+te/lJubq5tuukndu3dXmzZttGTJEj388MOaOHGi3G63unfvrvfff1/du3f3HB8cHKwlS5boscce09y5c/XOO+8oOjpaAwYMUP369c9Y4yOPPKL09HRPyHvXXXdV5reklHHjxik6OlrPPPOM/vvf/8rX11ctW7bUfffd5xnTr18/LV++XP/973/1yiuvKCsrS7Gxserevbtuv/32s16jadOmWr9+vSZPnqy5c+fq888/l9vtVtOmTXXLLbfonnvuKXfdY8aMUXJysqZPn67vv/9erVu31vvvv6/Zs2dr0aJF5T6f9Hs7iccff1z/+Mc/1KxZM82cOVPvvPOONm/eXGLstGnT1KVLF02fPl2PPPKIfHx81LBhQ40ePVo9e/Y8p+v/VR9++KE+/PBD+fj4KDQ0VM2aNdO9996rO+64o9QicwAAAChiMc5lVQYAAAAAXqNjx46qU6eO5s+fb3YpAAAAqGD04AUAAABqCKfTqcLCwhLbFi1apA0bNqhfv37mFAUAAIBKxQxeAAAAoIbYt2+fBg4cqNGjRysuLk7btm3TtGnT5HA4tGnTJkVGRppdIgAAACoYPXgBAACAGiI8PFxdunTRm2++qaNHjyooKEiXXHKJnnnmGcJdAACAGooZvAAAAAAAAADgpejBCwAAAAAAAABeioAXAAAAAAAAALwUPXjhldxutw4dOqSQkBBZLBazywEAAAAAAKgQhmEoMzNTcXFxslqZm4mzI+CFVzp06JDi4+PNLgMAAAAAAKBSJCUlqX79+maXAS9AwAuvFBISIqnozS40NNTkagAAAAAAACpGRkaG4uPjPdkHcDYEvPBKxW0ZQkNDCXgBAAAAAECNQ0tKlBWNPAAAAAAAAADASxHwAgAAAAAAAICXIuAFAAAAAAAAAC9FD17UaC6XS06n0+wyagxfX1/ZbDazywAAAAAAAMBJBLyokQzDUHJystLS0swupcYJCwtTbGwszd4BAAAAAACqAQJe1EjF4W50dLQCAwMJIyuAYRjKycnRkSNHJEl169Y1uSIAAAAAAAAQ8KLGcblcnnA3MjLS7HJqlICAAEnSkSNHFB0dTbsGAAAAAAAAk7HIGmqc4p67gYGBJldSMxV/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LwAAAAAAAKotl9vQ/bM36OvfDsvXZtFrozurf4tos8sCqg0CXqAasFgsf/p4/PHHJUlz587V+eefL4fDoZCQELVp00b33nuv5zwzZ85UWFhYma7ZsmVL2e12JScnV/wNAQAAAABQAVxuQw/M3qAv1h+Sj9Wiqdd31oBWMWaXBVQrBLxANXD48GHP46WXXlJoaGiJbX//+9/1008/6ZprrtHw4cP166+/as2aNXrqqafkdDrLfb2lS5cqNzdXI0aM0DvvvFMJdwQAAAAAwF/jdht66LPfNGfdQdmsFr1yfSdd1CbW7LKAasfH7AIASLGxv/8PyuFwyGKxlNgmSV999ZV69uypBx54wLOtefPmGjZsWLmvN2PGDF1//fXq27ev/va3v+mhhx4659oBAAAAAKhobrehh+ds1KdrDshmtWjKtZ00pG1ds8sCqiVm8AJeIjY2Vps3b9amTZv+0nkyMzM1e/ZsjR49WoMGDVJ6erqWLFlSQVUCAAAAAPDXuN2G/vn5Jn28OklWi/TSNR11SXvCXeBMmMGL2sEwJGdO1V/XN1CyWCrkVHfffbeWLFmidu3aqUGDBjr//PN10UUXadSoUbLb7WU+z0cffaRmzZqpTZs2kqRrr71WM2bMUO/evSukTgAAAAAAzpVhGHr0y0368NdEWS3S5Gs66rIOcWaXBVRrBLyoHZw50tMm/A/hkUOSX1CFnCooKEjffPONdu/erYULF2rFihW6//779fLLL2v58uUKDAws03neeustjR492vN69OjR6tu3r/73v/8pJCSkQmoFAAAAAKC8DMPQf77aovdXJMpikZ4b0UFXdKxndllAtUeLBsDLNGnSRLfccovefPNNrV27Vlu2bNHHH39cpmO3bNmiFStW6MEHH5SPj498fHx0/vnnKycnRx999FElVw4AAAAAwOkZhqH/fr1VM3/ZJ4tFmjS8vYZ3qW92WYBXYAYvagffwKLZtGZctxI1bNhQgYGBys7OLtP4GTNmqE+fPpo6dWqJ7W+//bZmzJihW2+9tTLKBAAAAADgjAzD0MTvtumtZXslSROvbKeru8abXBXgPQh4UTtYLBXWKsEsjz/+uHJycjR06FA1aNBAaWlpmjJlipxOpwYNGuQZ53K5tH79+hLH2u12NW3aVO+9956eeOIJtW3btsT+W265RS+++KI2b97s6c0LAAAA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yMjIcns0Llq0SB9//LG+/fbb4nWbNm3SE088oZ9++kl+fhV7CxQdPzIyssLPXVEpKSmKj48vddyibfXq1Tut46NiGHPuY+7GG2/UgQMH1K1bN1mWpby8PN1zzz20aKhE3jTmKiI6OlqTJk3SX/7yF2VnZ+s///mPLrroIi1ZskSdOnWq8uf3Bt485qZNm6ZffvlFb775Zrn7PP7444qJiTlpGxHgVNSG99/mzZv16quvaty4cSc9dlnHTU9P19GjRxUcHFyhGnF6GHPuY+6JJ55Qenq6WrVqJV9fX+Xn5+uFF17QTTfdVKH6cXLeNOYqIiEhQe+8847at2+vtLQ0jRs3TomJiVqzZo3OPPPM0z4+cDxm8KJGuv/++7V69Wp99NFHp3yM1atXa8CAARo5cqR69eolyfSBvPHGGzVq1Ci1bNmyzMe9//77qlOnTvHy008/nXINx2vTpk3xcfm0uGZhzLmbN2+eXnzxRb3++utavny5PvvsM3377bd67rnnKq02b8eYc5eQkKC7775bnTt3VmJiot555x0lJiZqwoQJlVabt/PWMTd37lzddttteuutt9SmTZsyj/HSSy/po48+0ueff84FUFAlnP7+2717t/r06aNrr71Wf/3rX4vXH3vce+6559ReGKoEY87dtGnT9P777+uDDz7Q8uXLNXXqVI0bN05Tp071uDaUjTHnrmvXrho8eLA6duyoHj166LPPPlPDhg1P+GEzcDqYwYsa54EHHtA333yjH3/80e2TraioKOXk5Cg1NdXtE8C9e/eWuvDY2rVr1bNnT9111116+umni9cfPnxYv/76q1asWKEHHnhAkvmk0bIs+fn56fvvv9cVV1yhLl26FD+mcePGSk5OLn6u6Ohot+euyNU7i3z33XfKzc2VpOLZC1FRUW5XES06btE2VD3GXOkxN2LECN1yyy268847JUnt2rVTRkaG7rrrLj311FPy8eHzwdPhbWPuVJ133nlasGDBaR0DhreOufnz56t///6aMGGCBg8eXObjx40bp5deekmzZs1S+/btK/y8QEU5/f23Z88eXXzxxUpMTHS7IKskrVy5svh2eHh48esq698Z4eHhzN6tJoy50mPuscce0xNPPKFBgwZJMv+23b59u0aPHq0hQ4aU/8tEhXjbmDsV/v7+Ouecc7R58+ZTPgZwQva1/wXcFRQUWPfff78VExNjbdy4sdT2ogbtn376afG69evXl2rQvnr1aqtRo0bWY489VuoY+fn51qpVq9yWe++910pISLBWrVplHTlypNzaoqKirHHjxhWvS0tLq9QLXuXk5BSvGz58OBdZqwaMufLHXKdOnaxhw4a5Pe6DDz6wgoODrby8vAo9D0rz1jF3rPIuslaWpKQk66qrrvL4OVDCm8fc3LlzrdDQUOu1114rd58xY8ZY4eHhJ7zQC3CqasP7b9euXVaLFi2sQYMGVfjv/2HDhllt27Z1W3fDDTdwkbVqwJgrcfyYq1+/vvX666+77fPiiy9aLVq0qNBzoGzeOuaOVd5F1o6Xl5dnJSQkWA8//LDHzwFUBAEvaox7773XioiIsObNm2clJycXL5mZmcX73HPPPVZcXJw1Z84c69dff7W6du1qde3atXj7qlWrrIYNG1o333yz2zH27dtX7vNW5AqclmVZL730klW3bl3ryy+/tH7//XdrwIABVnx8vHX06NHifbZv326tWLHCGjVqlFWnTh1rxYoV1ooVK6zDhw+Xe9zU1FQrMjLSuuWWW6zVq1dbH330kRUSEmK9+eabxftkZ2cXHys6Otp69NFHrRUrVlibNm06ad0oH2Ou/DE3cuRIKywszPrwww+tLVu2WN9//73VvHlz67rrrjtp3Sift445y7KsNWvWWCtWrLD69+9vXXTRRcWPKzJhwgTriy++sDZt2mStWrXKeuihhywfHx9r1qxZJ60b5fPWMTdnzhwrJCTEGj58uFvNBw8edHvugIAA69NPP3Xb52RjGagop7//du3aZZ111llWz549rV27drk9/4ls2bLFCgkJsR577DFr3bp11r/+9S/L19fXmjFjRvE+hw8fLn4vS7LGjx9vrVixwtq+fftJ60b5GHPlj7khQ4ZYjRs3tr755htr69at1meffWadccYZpSY0wDPeOuYsyyo+h3Xu3Nm68cYbrRUrVlhr1qwp3j5q1Chr5syZ1h9//GEtW7bMGjRokBUUFOS2D1CZCHhRY0gqc5k8eXLxPkePHrXuu+8+q169elZISIh11VVXuZ18R44cWeYxmjRpUu7zVvQvh4KCAmvEiBFWZGSkFRgYaPXs2dPasGGD2z5Dhgwp8/nnzp17wmP/9ttvVrdu3azAwECrcePG1ksvveS2fevWrWUet0ePHietG+Vj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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "try:\n",
    "    image = Image(filename=\"coding/stock_price_ytd.png\")\n",
    "    display(image)\n",
    "except FileNotFoundError:\n",
    "    print(\"Image not found. Please check the file name and modify if necessary.\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Use a Different Code Execution Environment\n",
    "\n",
    "The code execution happened in a separate process, so the plot is not directly displayed in the notebook. Is it possible to change the code execution environment into IPython?\n",
    "\n",
    "Yes! In the following we demonstrate how to extend the `UserProxyAgent` to use a different code execution environment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "class IPythonUserProxyAgent(autogen.UserProxyAgent):\n",
    "    def __init__(self, name: str, **kwargs):\n",
    "        super().__init__(name, **kwargs)\n",
    "        self._ipython = get_ipython()\n",
    "\n",
    "    def generate_init_message(self, *args, **kwargs) -> Union[str, Dict]:\n",
    "        return (\n",
    "            super().generate_init_message(*args, **kwargs)\n",
    "            + \"\"\"\n",
    "If you suggest code, the code will be executed in IPython.\"\"\"\n",
    "        )\n",
    "\n",
    "    def run_code(self, code, **kwargs):\n",
    "        result = self._ipython.run_cell(\"%%capture --no-display cap\\n\" + code)\n",
    "        log = self._ipython.ev(\"cap.stdout\")\n",
    "        log += self._ipython.ev(\"cap.stderr\")\n",
    "        if result.result is not None:\n",
    "            log += str(result.result)\n",
    "        exitcode = 0 if result.success else 1\n",
    "        if result.error_before_exec is not None:\n",
    "            log += f\"\\n{result.error_before_exec}\"\n",
    "            exitcode = 1\n",
    "        if result.error_in_exec is not None:\n",
    "            log += f\"\\n{result.error_in_exec}\"\n",
    "            exitcode = 1\n",
    "        return exitcode, log, None"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The implementation overrides three functions in `UserProxyAgent`:\n",
    "* constructor. We get the ipython instance as the code execution environment.\n",
    "* `generate_init_message`. We generate a modified initial message to send to the assistant agent, by adding the info that the execution will be performed in IPython.\n",
    "* `run_code`. We execute the code with the ipython instance.\n",
    "\n",
    "With the new `IPythonUserProxyAgent`, we are able to run the code within the current notebook environment and display the plot directly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[33mipython_user_proxy\u001b[0m (to assistant):\n",
      "\n",
      "Plot a chart of META and TESLA stock price gain YTD\n",
      "If you suggest code, the code will be executed in IPython.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant Plot a chart of META and TESLA stock price gain YTD\n",
      "If you suggest code, the code will be executed in IPython. None\n",
      "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n",
      "\n",
      "To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\n",
      "\n",
      "Here's the plan:\n",
      "1. Install the `yfinance` library if it's not already installed.\n",
      "2. Fetch the YTD stock price data for META and TESLA.\n",
      "3. Calculate the YTD gain for each stock.\n",
      "4. Plot the YTD gain on a chart.\n",
      "\n",
      "First, let's install `yfinance` and import the necessary libraries. Execute the following code:\n",
      "\n",
      "```python\n",
      "# Install yfinance if not already installed\n",
      "!pip install yfinance\n",
      "\n",
      "import yfinance as yf\n",
      "import pandas as pd\n",
      "import matplotlib.pyplot as plt\n",
      "from datetime import datetime\n",
      "\n",
      "# Check if today's date is required or the last trading day\n",
      "today = datetime.today().strftime('%Y-%m-%d')\n",
      "\n",
      "# Fetch YTD stock data for META and TESLA\n",
      "meta_data = yf.download('META', start='2023-01-01', end=today)\n",
      "tesla_data = yf.download('TSLA', start='2023-01-01', end=today)\n",
      "\n",
      "# Calculate the YTD gain for each stock\n",
      "meta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\n",
      "tesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\n",
      "\n",
      "# Plot the YTD gain on a chart\n",
      "plt.figure(figsize=(14, 7))\n",
      "plt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\n",
      "plt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\n",
      "plt.title('META vs TESLA Stock Price Gain YTD')\n",
      "plt.xlabel('Date')\n",
      "plt.ylabel('Gain %')\n",
      "plt.legend()\n",
      "plt.grid(True)\n",
      "plt.show()\n",
      "```\n",
      "\n",
      "This code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "\u001b[31m\n",
      ">>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...\u001b[0m\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJwCAYAAADFk9tlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1yV9fvH8dc5cNggogwHIG5x59acKZqjoWW2zHap7fW1aVnZt1/btNKvaUObjsrU3Jq5zb33RlyAgMDhnPv3x4GjBCjIwQP2fj4e58E59/zc53wgz9V1XbfJMAwDERERERERERGRy2R29wBERERERERERKRsU4BJRERERERERESKRQEmEREREREREREpFgWYRERERERERESkWBRgEhERERERERGRYlGASUREREREREREikUBJhERERERERERKRYFmEREREREREREpFgUYBIRERERERERkWJRgElERESkjBk0aBABAQFuO3+nTp3o1KmT287vasOHD8dkMrl7GCIiImWaAkwiIiL5mDhxIiaTCZPJxNKlS/OsNwyDyMhITCYTvXv3zrUuZ7/8Ho888giLFi266DYXPi7Uv39/TCYTL7zwQolee2F16tSpUNcwfPhwAKpVq1bgNj169Mh17KVLl3L99ddTpUoVfHx8iIqKok+fPkyePDnXdiaTiaFDhxZ6zGPGjMFkMtGqVasiXavdbufrr7+mVatWhISEEBgYSO3atRk4cCArVqxwbrd161aGDx/O/v37i3T8KyknmJLz8PPzIzY2lpdffpnk5GR3D++SNm7cyL333ktMTAw+Pj4EBATQpEkTnn/+efbu3evu4fHOO+9gMpn4448/8l3fs2dPypUrR1xcXKF+fwYNGgTk/n0zm80EBQVRp04d7r77bubOnXsFr1BERCR/nu4egIiISGnm4+PD5MmTufbaa3MtX7x4MYcPH8bb2zvf/bp168bAgQPzLK9duzbR0dF88803uZYPGzaMgIAAXnrppXyPl5yczG+//Ua1atX47rvvnF9i3emll17igQcecL5evXo1n3zyCS+++CL16tVzLm/UqJHzeZMmTXjmmWfyHKty5crO5z/99BO33XYbTZo04YknnqB8+fLs27ePJUuWMG7cOO64447LHvOkSZOoVq0aq1atYvfu3dSsWbNQ+z3++OOMHj2aG2+8kTvvvBNPT0927NjBrFmzqF69Oq1btwYcAabXX3+dTp06Ua1atcse55Xw2WefERAQQEpKCnPmzOGtt95iwYIF/PXXX5ecW3PmzLlCo8xt3LhxPProo1SsWJE777yTunXrkpWVxebNm/n666/56KOPOHfuHB4eHkU67ssvv8x//vMfl4zxmWeeYfLkyQwePJjNmzfj6+vrXPfTTz8xa9YsRo8eTdOmTXP9jdi3bx+vvvoqDz30EO3bt3cur1GjhvN51apVGTlyJACpqans3r2bqVOn8u2339K/f3++/fZbLBaLS65DRESkyAwRERHJY8KECQZg9O3b16hYsaJhtVpzrX/wwQeNZs2aGdHR0UavXr1yrQOMIUOGFOl89evXNzp27Fjg+i+//NKwWCzGggULDMBYtGhRkY5/Jfz0008GYCxcuDDf9fm9V/mJjY016tevb2RkZORZd/z48Vyvi/Je79271wCMqVOnGqGhocbw4cMLtV98fLxhMpmMBx98MM86u92ea0yXeg9c5Z577jH8/f0va9/XXnvNAIwTJ07kWt63b18DMJYtW1bgvqmpqZd1Tlf466+/DA8PD6NDhw5GcnJynvXnzp0zXn75ZSMrK8sNo8tt+fLlhtlsNoYNG+ZclpycbFSuXNlo3bq1YbPZ8uyzevVqAzAmTJiQ7zE7duxo1K9fP8/yrKwsY/DgwQZgPP/88y67BhERkaJSiZyIiMhF3H777Zw6dSpXCUpmZiY///xzsTJpimrSpEl069aNzp07U69ePSZNmnTJfaxWKyEhIdx777151iUnJ+Pj48Ozzz7rXDZq1Cjq16+Pn58f5cuXp3nz5nlK0q6EPXv20KJFC7y8vPKsCwsLu+zjTpo0ifLly9OrVy9uueWWQr2H4MgsMQyDdu3a5VlnMpmcY5o4cSK33norAJ07d3aWMy1atMi5/ZgxY6hfvz7e3t5UrlyZIUOGkJiYmOe4K1eupGfPnpQvXx5/f38aNWrExx9/fNFxrl+/ntDQUDp16kRKSkqhru1CXbp0cV4vOEqyGjRowNq1a+nQoQN+fn68+OKLznX/7MGUnp7O8OHDqV27Nj4+PlSqVIm+ffuyZ88e5zZ2u52PPvqI+vXr4+PjQ3h4OA8//DBnzpy55Phef/11TCYTkyZNIjAwMM96Hx8fRowYkSt76c8//+TWW28lKioKb29vIiMjeeqppzh37lyuffPrwZRTfjl9+nQaNGiAt7c39evXZ/bs2Zcca+vWrXnkkUd477332Lp1K+DIkkpISGDs2LGYza77J7iHhweffPIJsbGxfPrppyQlJbns2CIiIkWhAJOIiMhFVKtWjTZt2vDdd985l82aNYukpCQGDBhQ4H7p6emcPHkyzyMzM7PIYzh69CgLFy7k9ttvBxxBr59//vmSx7JYLNx8881Mnz49z7bTp08nIyPDeQ3jxo3j8ccfJzY2lo8++ojXX3+dJk2asHLlyiKP92KsVmu+78uFX/ijo6OZP38+hw8fdum5J02aRN++ffHy8uL2229n165drF69+pL7RUdHA47yprS0tAK369ChA48//jgAL774It988w3ffPONs1xw+PDhDBkyhMqVK/P+++/Tr18/vvjiC+Li4rBarc7jzJ07lw4dOrB161aeeOIJ3n//fTp37syMGTMKPPfq1avp0qULTZs2ZdasWZfVADwnEFShQgXnslOnTnH99dfTpEkTPvroIzp37pzvvjabjd69e/P666/TrFkz3n//fZ544gmSkpLYvHmzc7uHH36Y5557jnbt2vHxxx9z7733MmnSJLp3757rPfintLQ0FixYQKdOnahatWqhrynnM3v00UcZNWoU3bt3Z9SoUfmWr+Zn6dKlDB48mAEDBvDuu++Snp5Ov379OHXq1CX3HTlyJKGhoTz88MOsXbuW0aNH8+yzz9KwYcNCj7+wPDw8uP3220lLS8u3Z5yIiMgV4e4UKhERkdIop0Ru9erVxqeffmoEBgYaaWlphmEYxq233mp07tzZMIz8y76AAh/fffddvue7WInce++9Z/j6+jrLgnbu3GkAxrRp0y55HX/88YcBGL/99luu5T179jSqV6/ufH3jjTfmW35TFIUpkSvofRk5cqRzu/HjxxuA4eXlZXTu3Nl45ZVXjD///DPfsiIKWSK3Zs0aAzDmzp1rGIajtK1q1arGE088UahrGzhwoAEY5cuXN26++WbjvffeM7Zt21bo9yAhIcHw8vIy4uLicl3Hp59+agDGl19+aRiGo9wpJibGiI6ONs6cOZPrGHa73fn8whK5pUuXGkFBQUavXr2M9PT0S15LToncjh07jBMnThj79u0zvvjiC8Pb29sIDw93lsF17NjRAIzPP/88zzE6duyYa75++eWXBmB88MEHebbN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nuTTTz/Nsy5n3P3798dmszFixIg822RlZeW53n969dVXsdls3HXXXfmWyv3z/cnJPrpwuWEYfPzxx5e8nrLEZrPx+OOPs23bNh5//PGLlsyKiIiUJGUwiYiIFFJRyrJ27tzpLG+7UHh4ON26dSvUMSZNmoSHh4cz+PBPN9xwAy+99BLff/89Tz/99EWPddtttzFq1Chee+01GjZsSL169XKtj4uLIyIignbt2hEeHs62bdv49NNPczUXd4UjR47k+74EBARw0003AY4G6TExMfTp04caNWqQmprKvHnz+O2335yBlAutWbOGN998M88xO3XqxJEjRzh79iw33HBDvuNp3bo1oaGhTJo0KU/QLcfhw4dp2bIlXbp04brrriMiIoKEhAS+++47NmzYwJNPPuksNWvSpAkeHh7897//JSkpCW9vb7p06UJYWBjDhg3j9ddfp0ePHtxwww3s2LGDMWPG0KJFC+666y7AEQz87LPP6NOnD02aNOHee++lUqVKbN++nS1btvDHH3/kGZ+vry8zZsygS5cuXH/99SxevLhQPZxcaeDAgXz99dc8/fTTrFq1ivbt2zs/t8GDB3PjjTfSsWNHHn74YUaOHMn69euJi4vDYrGwa9cufvrpJz7++OOL9jZr3749n376KY899hi1atXizjvvpG7dumRmZrJz504mTZqEl5cXERERANStW5caNWrw7LPPcuTIEYKCgpgyZUqR+ieVNklJSc7fn7S0NHbv3s3UqVPZs2cPAwYMyDd4JyIicsW46/Z1IiIipdmECRMMwFi9evVFt4uOjjZ69eqVaxlQ4OPCW7tfqH79+rnWZWZmGhUqVDDat29/0fPHxMQYTZs2veT12O12IzIy0gCMN998M8/6L774wujQoYNRoUIFw9vb26hRo4bx3HPPGUlJSZc8do6ffvrJAIyFCxfmuz46OrrA9yU6Otq53XfffWcMGDDAqFGjhuHr62v4+PgYsbGxxksvvWQkJyfnOubF3usRI0YYffr0MXx8fIzU1NQCxz1o0CDDYrEYJ0+ezHd9cnKy8fHHHxvdu3c3qlatalgsFiMwMNBo06aNMW7cOMNut+fafty4cUb16tUNDw+PPO/Hp59+atStW9ewWCxGeHi48eijjxpnzpzJc86lS5ca3bp1MwIDAw1/f3+jUaNGxqhRo5zr77nnHsPf3z/XPidPnjRiY2ONiIgIY9euXQVe72uvvWYAxokTJwrcxjAMo2PHjkb9+vULXPfPuZyWlma89NJLRkxMjGGxWIyIiAjjlltuMfbs2ZNru7FjxxrNmjUzfH19jcDAQKNhw4bG888/bxw9evSi48mxbt06Y+DAgUZUVJTh5eXlfH+eeeYZY/fu3bm23bp1q9G1a1cjICDAqFixovHggw8aGzZsMABjwoQJed6TCwHGkCFD8pw/OjrauOeeewo11guPfan3e/Xq1XnGdaGOHTvmmt8BAQFGrVq1jLvuusuYM2dOoccjIiJSUkyGUQq7FIqIiIiIiIiISJmhHkwiIiIiIiIiIlIsCjCJiIiIiIiIiEixKMAkIiIiIiIiIiLFogCTiIiIiIiIiIgUiwJMIiIiIiIiIiJSLAowiYiIiIiIiIhIsXi6ewClgd1u5+jRowQGBmIymdw9HBERERERERERlzAMg7Nnz1K5cmXM5hLMMzLcaMyYMUbDhg2NwMBAIzAw0GjdurUxc+ZM5/pz584ZgwcPNkJCQgx/f3+jb9++Rnx8fK5jHDhwwOjZs6fh6+trhIaGGs8++6xhtVqLNI5Dhw4ZgB566KGHHnrooYceeuihhx566KHHVfk4dOiQS2I5BXFrBlPVqlV55513qFWrFoZh8NVXX3HjjTeybt066tevz1NPPcXvv//OTz/9RLly5Rg6dCh9+/blr7/+AsBms9GrVy8iIiJYtmwZx44dY+DAgVgsFt5+++1CjyMwMBCAQ4cOERQUVCLX6kpWq5U5c+YQFxeHxWJx93CkDNHcEVfRXBJX0nySkqB5Ja6iuSSupPkkxXU5cyg5OZnIyEhn7KOkuDXA1KdPn1yv33rrLT777DNWrFhB1apVGT9+PJMnT6ZLly4ATJgwgXr16rFixQpat27NnDlz2Lp1K/PmzSM8PJwmTZowYsQIXnjhBYYPH46Xl1ehxpFTFhcUFFRmAkx+fn4EBQXpj5IUieaOuIrmkriS5pOUBM0rcRXNJXElzScpruLMoZJuCVRqejDZbDZ++uknUlNTadOmDWvXrsVqtdK1a1fnNnXr1iUqKorly5fTunVrli9fTsOGDQkPD3du0717dx599FG2bNlC06ZN8z1XRkYGGRkZztfJycmA44OyWq0ldIWukzPGsjBWKV00d8RVNJfElTSfpCRoXomraC6JK2k+SXFdzhy6UvPN7QGmTZs20aZNG9LT0wkICGDatGnExsayfv16vLy8CA4OzrV9eHg48fHxAMTHx+cKLuWsz1lXkJEjR/L666/nWT5nzhz8/PyKeUVXzty5c909BCmjNHfEVTSXxJU0n6QkaF6Jq2guiStpPklxFWUOpaWlleBIznN7gKlOnTqsX7+epKQkfv75Z+655x4WL15couccNmwYTz/9tPN1Tj1iXFxcmSmRmzt3Lt26dVNapRSJ5o64iuaSuJLmk5QEzStxFc0lcSXNJymuy5lDOVVbJc3tASYvLy9q1qwJQLNmzVi9ejUff/wxt912G5mZmSQmJubKYjp+/DgREREAREREsGrVqlzHO378uHNdQby9vfH29s6z3GKxFPgB2Wy2UpPGaLPZ8PT0xGazlewtBuWq4eHhgafn+V/3i811kaLQXBJX0nySkqB5Ja6iuSSupPkkxVWUOXSl5prbA0z/ZLfbycjIoFmzZlgsFubPn0+/fv0A2LFjBwcPHqRNmzYAtGnThrfeeouEhATCwsIAR5pYUFAQsbGxLhtTSkoKhw8fxjAMlx2zOAzDICIigkOHDpV4ky65evj5+REaGuruYYiIiIiIiMhVyK0BpmHDhnH99dcTFRXF2bNnmTx5MosWLeKPP/6gXLly3H///Tz99NOEhIQQFBTEY489Rps2bWjdujUAcXFxxMbGcvfdd/Puu+8SHx/Pyy+/zJAhQ/LNULocNpuNw4cPO7+cl4aAjt1uJyUlhYCAAGUwySUZhkFmZiYnTpzg4MGD7h6OiIiIiIiIXIXcGmBKSEhg4MCBHDt2jHLlytGoUSP++OMPunXrBsCHH36I2WymX79+ZGRk0L17d8aMGePc38PDgxkzZvDoo4/Spk0b/P39ueeee3jjjTdcNkar1YphGISGhuLr6+uy4xaH3W4nMzMTHx8fBZikUHx9fbFYLOzfvx8PDw93D0dERERERESuMm4NMI0fP/6i6318fBg9ejSjR48ucJvo6Ghmzpzp6qHlURoyl0SKIycYqbksIiIiIiIirqb0FxERERERERERKRYFmEREREREREREpFgUYBJxkYkTJxIcHOzuYYiIiIiIiIhccQowXaUGDRqEyWTikUceybNuyJAhmEwmBg0alGf7fz569OjBokWL8l134WPRokUAHD58GC8vLxo0aHDR8RmGQdeuXenevXuedWPGjCE4OJiuXbte9JzVqlUDoFOnTs5l3t7eVKlShT59+jB16tRCvVfx8fE88cQT1KxZEx8fH8LDw2nXrh2fffYZaWlphToGwG233cbOnTsLvX1+9u/fT4cOHfD396dDhw7s378/1/revXszZcqUYp1DRERERERExNUUYLqKRUZG8v3333Pu3DnnsvT0dCZPnkxUVFSe7Xv06MGxY8dyPb777jvatm2ba1n//v3zbNu2bVvAkcXTv39/kpOTWblyZYFjM5lMTJgwgZUrV/LFF184l+/bt4/nn3+eUaNGMWXKlFznAJgwYYLz9erVq537Pfjggxw7dow9e/YwZcoUYmNjGTBgAA899NBF36O9e/fStGlT5syZw9tvv826detYvnw5zz//PDNmzGDevHmFe7Nx3KktLCys0Nvn55lnnqFKlSqsX7+eSpUq8eyzzzrX/fDDD867KoqIiIiIiIiUJm69i1xZZBgG56w2t5zb1+JRpDuAXXPNNezZs4epU6dy5513AjB16lSioqKIiYnJs723tzcRERH5HuvC5b6+vmRkZOTZ1jAMJkyYwJgxY6hatSrjx4+nVatWBY4vMjKSjz/+mKFDhxIXF0e1atW4//77iYuL4+677wagXLlyufYJDg7Od4x+fn7O5VWrVqV169bUrVuX++67j/79+9O1a9d8xzB48GA8PT1Zs2YN/v7+zuXVq1fnxhtvxDAM57IPPviACRMmsHfvXkJCQujTpw/vvvsuAQEBgCO49uSTT5KYmAjA8OHDmT59Os888wyvvPIKZ86c4frrr2fcuHEEBgbmO55t27bxwQcfUKtWLQYNGuQMMCUmJvLyyy+zYMGCAt9PEREREREREXdRgKmIzlltxL76h1vOvfWN7vh5Fe0ju++++5gwYYIzwPTll19y7733OkvaXGnhwoWkpaXRtWtXqlSpQtu2bfnwww9zBW7+6Z577mHatGncd9999O3bl82bN7NlyxaXjOeee+7hmWeeYerUqfkGmE6dOuXMXCpojBcG9MxmM5988gkxMTHs3buXwYMH8/zzzzNmzJgCx7Bnzx6mT5/OjBkzOHPmDP379+edd97hrbfeynf7xo0bM2/ePOLi4pgzZw6NGjUC4LnnnmPIkCFERkYW5S0QERERERERuSJUIneVu+uuu1i6dCkHDhzgwIED/PXXX9x11135bjtjxgwCAgJyPd5+++1Cn2v8+PEMGDAADw8PGjRoQPXq1fnpp58uud/YsWPZvHkzTz75JGPHjiU0NLTQ57wYs9lM7dq18/QxyrF7924Mw6BOnTq5llesWNF5/S+88IJz+ZNPPknnzp2pVq0aXbp04c033+THH3+86BjsdjsTJ06kQYMGtG/fnrvvvpv58+cXuP17773H9u3bqVatGrt27eK9995jyZIlrF+/noEDB9K/f3+qV6/OI488QmZmZuHfDBEREREREZESpAymIvK1eLD1jbyNqa/UuYsqNDSUXr16MXHiRAzDoFevXlSsWDHfbTt37sxnn32Wa1lISEihzpOYmMjUqVNZunSpc9ldd93F+PHjczUTz09YWBgPP/ww06dP56abbirU+QrLMIwilRUCrFq1Crvdzp133klGRoZz+bx58xg5ciTbt28nOTmZrKws0tPTSUtLw8/PL99jVatWLVc5XKVKlUhISCjw3FWqVGHGjBnO1xkZGXTv3p2vvvqKN998k8DAQHbs2EGPHj344osveOyxx4p0bSIiIiIiIiIlQQGmIjKZTEUuU3O3++67j6FDhwIwevToArfz9/enZs2al3WOyZMnk56enqvnkmEY2O12du7cSe3atS+6v6enJ56ern1fbTYbu3btokWLFvmur1mzJiaTiR07duRaXr16dcDRayrH/v376d27N48++ihvvfUWISEhLF26lPvvv5/MzMwCA0wWiyXXa5PJhN1uL/Q1vP3228TFxdGsWTMefPBB3nzzTSwWC3379mXBggUKMImIiIiIiEipoBK5f4EePXqQmZmJ1Wqle/eSyb4aP348zzzzDOvXr3c+NmzYQPv27fnyyy9L5JyX8tVXX3HmzJkC77pWoUIFunXrxqeffkpqaupFj7V27Vrsdjvvv/8+rVu3pnbt2hw9erQkhu20bds2Jk+ezIgRIwBHwMxqtQJgtVqx2dzTbF5ERERERETkn8pWKo5cFg8PD7Zt2+Z8XpCMjAzi4+NzLfP09CywpC7H+vXr+fvvv5k0aRJ169bNte7222/njTfe4M0333R5htKF0tLSiI+PJysri8OHDzNt2jQ+/PBDHn30UTp37lzgfmPGjKFdu3Y0b96c4cOH06hRI8xmM6tXr2b79u00a9YMcGQ7Wa1WRo0aRZ8+ffjrr7/4/PPPS+x6DMPgoYceytUkvV27dowbN47atWvz9ddfc/vtt5fY+UVERERERESKQhlM/xJBQUEEBQVddJvZs2dTqVKlXI9rr732ksceP348sbGxeYJLADfffDMJCQnMnDnzssdeGOPGjaNSpUrUqFGDvn37snXrVn744YeL3uENoEaNGqxbt46uXbsybNgwGjduTPPmzRk1ahTPPvusM3uocePGfPDBB/z3v/+lQYMGTJo0iZEjR5bY9YwdO5bw8HB69+7tXDZ8+HBnGWLNmjUZMmRIiZ1fRERERETk3274r1vo+fGf/L7xmLuHUiaYDMMw3D0Id0tOTqZcuXIkJSXlCcKkp6ezb98+YmJi8PHxcdMIc7Pb7SQnJxMUFITZrBihFE56ejp79+5l3759xMXF5ekPJVIUVquVmTNn0rNnT80lKTbNJykJmlfiKppL4kqaT2VLv8+WsfbAGT65vSk3NK7s7uEAlzeHLhbzcCVFJ0RERERERERELmAYBruOnwWgdniAm0dTNijAJCIiIiIiIiJygRNnM0hOz8JsgpiK/u4eTpmgAJOIiIiIiIiIyAV2Hk8BoFoFf7w9C75ZlpynAJOIiIiIiIiIyAV2JTjK42qGqTyusBRgEhERERERERG5wK4ERwZTLfVfKjQFmERERERERERELrA7u0SuVligm0dSdijAJCIiIiIiIiKSzTAMdmaXyCmDqfAUYBIRERERERERyXYyJZPENCsmE9QIVYCpsBRgEhERERERERHJltPgOyrEDx+L7iBXWAowiZSwiRMnEhwc7O5hiIiIiIiISCHszmnwrTvIFYkCTFchk8l00cfw4cPZv39/getXrFgBgM1m45133qFu3br4+voSEhJCq1at+N///uc816BBg7jpppsuOabDhw/j5eVFgwYNLrqdYRh07dqV7t2751k3ZswYgoOD6dq160Wvr1q1agB06tTJuczb25sqVarQp08fpk6dWqj3MT4+nieeeIKaNWvi4+NDeHg47dq147PPPiMtLa1QxwC47bbb2LlzZ6G3z8/+/fvp0KED/v7+dOjQgf379+da37t3b6ZMmVKsc4iIiIiIiJQ2S3aeYPORpCt6zl3ZDb5rqsF3kSjAdBU6duyY8/HRRx8RFBSUa9mzzz7r3HbevHm51h07doxmzZoB8Prrr/Phhx8yYsQItm7dysKFC3nooYdITEws8pgm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QogIUgaTOynAJCIiIiIiIiKlTk6JnOdFSuRyVC3vV9LDkUtQiZyIiIiIiIiIlDo5JXJel8hgktJBn5KIiIiIiIiIlDqFLZGT0kGfkoiIiIiIiIiUOkUpkRP3U4BJREREREREREodlciVLfqURERERERERKTUyVKJXJmiT0lERERERERESp3MLJXIlSUKMImIiIiIiIhIqWO1qUSuLNGnJCIiIiIiIiKlTk6JnDKYygYFmERERERERESkVDEMw5nBpB5MZYM+JREREREREREpVXKCS6AAU1mhT0lERERERERESpWc8jgAi0rkygQFmERERERERESkVLFmKYOprNGnJCIiIiIiIiKlivWCDCZPszKYygIFmERERERERESkVLHaHAEmi4cJk0kBprJAASYRERERERERKVVySuRUHld26JMSERERERERkVIlp0ROAaayQ5+UiIiIiIiIiJQqF5bISdmgAJOIiIiIiIiIlCoqkSt73PpJjRw5khYtWhAYGEhYWBg33XQTO3bsyLVNp06dMJlMuR6PPPJIrm0OHjxIr1698PPzIywsjOeee46srKwreSkiIiIiIiIi4iIqkSt7PN158sWLFzNkyBBatGhBVlYWL774InFxcWzduhV/f3/ndg8++CBvvPGG87Wfn5/zuc1mo1evXkRERLBs2TKOHTvGwIEDsVgsvP3221f0ekRERERERESk+KxZjgCTp0rkygy3Bphmz56d6/XEiRMJCwtj7dq1dOjQwbncz8+PiIiIfI8xZ84ctm7dyrx58wgPD6dJkyaMGDGCF154geHDh+Pl5VWi1yAiIiIiIiIirmW1OUrkvJTBVGa4NcD0T0lJSQCEhITkWj5p0iS+/fZbIiIi6NOnD6+88oozi2n58uU0bNiQ8PBw5/bdu3fn0UcfZcuWLTRt2jTPeTIyMsjIyHC+Tk5OBsBqtWK1Wl1+Xa6WM8ayMFYpXTR3xFU0l8SVNJ+kJGheiatoLokraT4VXnpmJgCeZpPerwtczhy6Uu+fyTAM44qc6RLsdjs33HADiYmJLF261Ll87NixREdHU7lyZTZu3MgLL7xAy5YtmTp1KgAPPfQQBw4c4I8//nDuk5aWhr+/PzNnzuT666/Pc67hw4fz+uuv51k+efLkXOV3IiIiIiIiInLlbTpt4n87PKgWYPBUQ5u7h1OmpaWlcccdd5CUlERQUFCJnafUZDANGTKEzZs35wougSOAlKNhw4ZUqlSJ6667jj179lCjRo3LOtewYcN4+umnna+Tk5OJjIwkLi6uRN9sV7FarcydO5du3bphsVjcPRwpQzR3xFU0l8SVNJ+kJGheiatoLokraT4VnmlzPOzYSGjFEHr2bOHu4ZQalzOHcqq2SlqpCDANHTqUGTNmsGTJEqpWrXrRbVu1agXA7t27qVGjBhEREaxatSrXNsePHwcosG+Tt7c33t7eeZZbLJYy9Ute1sYrpYfmjriK5pK4kuaTlATNK3EVzSVxJc2nSzNMjt5L3p4eeq/yUZQ5dKXeP7d2yzIMg6FDhzJt2jQWLFhATEzMJfdZv349AJUqVQKgTZs2bNq0iYSEBOc2c+fOJSgoiNjY2BIZt4iIiIiIiIiUnEzdRa7McWsG05AhQ5g8eTK//PILgYGBxMfHA1CuXDl8fX3Zs2cPkydPpmfPnlSoUIGNGzfy1FNP0aFDBxo1agRAXFwcsbGx3H333bz77rvEx8fz8ssvM2TIkHyzlERERERERESkdMu5i5xFd5ErM9z6SX322WckJSXRqVMnKlWq5Hz88MMPAHh5eTFv3jzi4uKoW7cuzzzzDP369eO3335zHsPDw4MZM2bg4eFBmzZtuOuuuxg4cCBvvPGGuy5LRERERERERIohy+7IYLIog6nMcGsG06VuYBcZGcnixYsveZzo6GhmzpzpqmGJiIiIiIiIiBvllMgpg6ns0CclIiIiIiIiIqVKll0lcmWNPikRERERERERKVWsWSqRK2sUYBIRERERERGRUsVqU4lcWaNPSkRERERERERKFatK5MocfVIiIiIiIiIiUqrklMh5qkSuzFCASURERERERERKlZwSOS9lMJUZ+qREREREREREpFRRiVzZo09KREREREREREoVlciVPQowiYiIiIiIiEipohK5skeflIiIiIiIiIiUKiqRK3v0SYmIiIiIiIhIqaISubJHASYRERERERERKVVySuSUwVR26JMSERERERERkVIlK7tETj2Yyg59UiIiIiIiIiJSqmSqRK7MUYBJREREREREREoVlciVPfqkRERERERERKRUUYlc2aNPSkRERERERERKFZXIlT0KMImIiIiIiIhIqaISubJHn5SIiIiIiIiIlCo5JXIKMJUd+qREREREREREpFSxZuVkMKlErqxQgElEREREREREShWrMpjKHH1SIiIiIiIiIlKqnO/BpAymskIBJhEREREREREpVc6XyClsUVbokxIRERERERGRUkUlcmWPPikRERERERERKTUMw3CWyHmqRK7MUIBJREREREREREoNm93AcCQw4aUMpjJDn5SIiIiIiIiIlBpZ2eVxoBK5skSflIiIiIiIiIiUGpnZ5XGgErmyRAEmERERERERESk1cu4gB2AxK2xRVuiTEhEREREREZFSI6dEztNswmxWBlNZoQCTiIiIiIiIiJQamVm6g1xZpACTiIiIiIiIiJQa1uweTGrwXbbo0xIRERERERGRUiOnRM5LAaYyRZ+WiIiIiIiIiJQaKpErmxRgEhEREREREZFSQyVyZZM+LREREREREREpNVQiVzbp0xIRERERERGRUsOqErkySQEmERERERERESk1MlUiVybp0xIRERERERGRUiPL5iiRU4CpbNGnJSIiIiIiIiKlxvkm3yqRK0sUYBIRERERERGRK2r5nlN8MHcnx5LO5VlntSuDqSzydPcAREREREREROTfY9uxZO6duIp0q50vFu/h3nYxPNalJv7ejhDF+SbfCjCVJfq0REREREREROSKSE638ui3a0m32gny8SQjy87ni/cwctY25zY5JXJeKpErUxRgEhEREREREZESZxgGz/64gf2n0qgS7Mui5zrzxo31AVi2+5RzO5XIlU36tERERERERESkxI1dspc5W4/j5WFmzJ3XEOLvRY8GEQDsP5XKuUwboBK5skqfloiIiIiIiIiUqBV7T/Hf2dsBeLVPLI0jgwEIDfCmgr8XdgN2JZwFdBe5skoBJhEREREREREpMQnJ6QydvA67ATc3rcKdraKc60wmE3UrBQKw/ZgjwJSVXSLnpQymMkWfloiIiIiIiIiUCKvNzpDJf3MyJYM64YG8dXMDTKbcmUl1woMA2BafDECms0ROGUxliQJMIiIiIiIiIlIi3p29ndX7zxDg7clnd12Dn5dnnm1yMph2xP+zRE4hi7JEn5aIiIiIiIiIuNzMTccY9+c+AN67tRHVQwPy3a5eRHYG07FkDMMgI0sBprIob+hQREREREREROQynUzJ4NMFu5m08gAAD3WoTo8GlQrcvlZ4AGYTnEmzknA2g0U7EgCoWUBASkonBZhERERERERExCWW7TnJQ1+v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",
      "text/plain": [
       "<Figure size 1400x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "recipitent sending ipython_user_proxy To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\n",
      "\n",
      "Here's the plan:\n",
      "1. Install the `yfinance` library if it's not already installed.\n",
      "2. Fetch the YTD stock price data for META and TESLA.\n",
      "3. Calculate the YTD gain for each stock.\n",
      "4. Plot the YTD gain on a chart.\n",
      "\n",
      "First, let's install `yfinance` and import the necessary libraries. Execute the following code:\n",
      "\n",
      "```python\n",
      "# Install yfinance if not already installed\n",
      "!pip install yfinance\n",
      "\n",
      "import yfinance as yf\n",
      "import pandas as pd\n",
      "import matplotlib.pyplot as plt\n",
      "from datetime import datetime\n",
      "\n",
      "# Check if today's date is required or the last trading day\n",
      "today = datetime.today().strftime('%Y-%m-%d')\n",
      "\n",
      "# Fetch YTD stock data for META and TESLA\n",
      "meta_data = yf.download('META', start='2023-01-01', end=today)\n",
      "tesla_data = yf.download('TSLA', start='2023-01-01', end=today)\n",
      "\n",
      "# Calculate the YTD gain for each stock\n",
      "meta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\n",
      "tesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\n",
      "\n",
      "# Plot the YTD gain on a chart\n",
      "plt.figure(figsize=(14, 7))\n",
      "plt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\n",
      "plt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\n",
      "plt.title('META vs TESLA Stock Price Gain YTD')\n",
      "plt.xlabel('Date')\n",
      "plt.ylabel('Gain %')\n",
      "plt.legend()\n",
      "plt.grid(True)\n",
      "plt.show()\n",
      "```\n",
      "\n",
      "This code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment. None\n",
      "\u001b[33mipython_user_proxy\u001b[0m (to assistant):\n",
      "\n",
      "exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n",
      "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n",
      "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n",
      "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n",
      "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n",
      "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n",
      "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n",
      "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n",
      "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n",
      "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n",
      "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n",
      "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n",
      "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n",
      "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n",
      "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n",
      "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n",
      "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n",
      "  df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n",
      "[*********************100%%**********************]  1 of 1 completed\n",
      "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n",
      "  df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n",
      "[*********************100%%**********************]  1 of 1 completed\n",
      "\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n",
      "recipitent sending assistant exitcode: 0 (execution succeeded)\n",
      "Code output: \n",
      "Requirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\n",
      "Requirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\n",
      "Requirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\n",
      "Requirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\n",
      "Requirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\n",
      "Requirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\n",
      "Requirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\n",
      "Requirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\n",
      "Requirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\n",
      "Requirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\n",
      "Requirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\n",
      "Requirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\n",
      "Requirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\n",
      "Requirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\n",
      "Requirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\n",
      "Requirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\n",
      "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n",
      "  df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n",
      "[*********************100%%**********************]  1 of 1 completed\n",
      "/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\n",
      "  df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\n",
      "[*********************100%%**********************]  1 of 1 completed\n",
      " None\n",
      "\u001b[33massistant\u001b[0m (to ipython_user_proxy):\n",
      "\n",
      "The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\n",
      "\n",
      "Since the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\n",
      "\n",
      "TERMINATE\n",
      "\n",
      "--------------------------------------------------------------------------------\n",
      "self.reply_at_receive[sender]self.reply_at_receive[sender] True\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "ChatResult(chat_history=[{'content': 'Plot a chart of META and TESLA stock price gain YTD\\nIf you suggest code, the code will be executed in IPython.', 'role': 'assistant'}, {'content': \"To plot a chart of META (Facebook's parent company, Meta Platforms, Inc.) and TESLA (Tesla, Inc.) stock price gain year-to-date (YTD), we can use Python with libraries such as `pandas` for data manipulation and `matplotlib` or `plotly` for plotting. We will also use `yfinance` to fetch historical stock data.\\n\\nHere's the plan:\\n1. Install the `yfinance` library if it's not already installed.\\n2. Fetch the YTD stock price data for META and TESLA.\\n3. Calculate the YTD gain for each stock.\\n4. Plot the YTD gain on a chart.\\n\\nFirst, let's install `yfinance` and import the necessary libraries. Execute the following code:\\n\\n```python\\n# Install yfinance if not already installed\\n!pip install yfinance\\n\\nimport yfinance as yf\\nimport pandas as pd\\nimport matplotlib.pyplot as plt\\nfrom datetime import datetime\\n\\n# Check if today's date is required or the last trading day\\ntoday = datetime.today().strftime('%Y-%m-%d')\\n\\n# Fetch YTD stock data for META and TESLA\\nmeta_data = yf.download('META', start='2023-01-01', end=today)\\ntesla_data = yf.download('TSLA', start='2023-01-01', end=today)\\n\\n# Calculate the YTD gain for each stock\\nmeta_ytd_gain = (meta_data['Close'] - meta_data['Close'].iloc[0]) / meta_data['Close'].iloc[0] * 100\\ntesla_ytd_gain = (tesla_data['Close'] - tesla_data['Close'].iloc[0]) / tesla_data['Close'].iloc[0] * 100\\n\\n# Plot the YTD gain on a chart\\nplt.figure(figsize=(14, 7))\\nplt.plot(meta_ytd_gain.index, meta_ytd_gain, label='META YTD Gain %')\\nplt.plot(tesla_ytd_gain.index, tesla_ytd_gain, label='TESLA YTD Gain %')\\nplt.title('META vs TESLA Stock Price Gain YTD')\\nplt.xlabel('Date')\\nplt.ylabel('Gain %')\\nplt.legend()\\nplt.grid(True)\\nplt.show()\\n```\\n\\nThis code will install `yfinance`, fetch the YTD stock data for META and TESLA, calculate the YTD gain, and plot it on a chart. Please execute the code in your IPython environment.\", 'role': 'user'}, {'content': \"exitcode: 0 (execution succeeded)\\nCode output: \\nRequirement already satisfied: yfinance in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (0.2.36)\\r\\nRequirement already satisfied: pandas>=1.3.0 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.2.0)\\r\\nRequirement already satisfied: numpy>=1.16.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.26.4)\\r\\nRequirement already satisfied: requests>=2.31 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.31.0)\\r\\nRequirement already satisfied: multitasking>=0.0.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (0.0.11)\\r\\nRequirement already satisfied: lxml>=4.9.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (5.1.0)\\r\\nRequirement already satisfied: appdirs>=1.4.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.4.4)\\r\\nRequirement already satisfied: pytz>=2022.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2024.1)\\r\\nRequirement already satisfied: frozendict>=2.3.4 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (2.4.0)\\r\\nRequirement already satisfied: peewee>=3.16.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (3.17.1)\\r\\nRequirement already satisfied: beautifulsoup4>=4.11.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (4.12.3)\\r\\nRequirement already satisfied: html5lib>=1.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from yfinance) (1.1)\\r\\nRequirement already satisfied: soupsieve>1.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from beautifulsoup4>=4.11.1->yfinance) (2.5)\\r\\nRequirement already satisfied: six>=1.9 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (1.16.0)\\r\\nRequirement already satisfied: webencodings in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from html5lib>=1.1->yfinance) (0.5.1)\\r\\nRequirement already satisfied: python-dateutil>=2.8.2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2.8.2)\\r\\nRequirement already satisfied: tzdata>=2022.7 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from pandas>=1.3.0->yfinance) (2024.1)\\r\\nRequirement already satisfied: charset-normalizer<4,>=2 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.3.2)\\r\\nRequirement already satisfied: idna<4,>=2.5 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (3.6)\\r\\nRequirement already satisfied: urllib3<3,>=1.21.1 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (1.26.18)\\r\\nRequirement already satisfied: certifi>=2017.4.17 in /Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages (from requests>=2.31->yfinance) (2024.2.2)\\r\\n/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n  df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************]  1 of 1 completed\\n/Users/qingyunwu/miniconda3/envs/ag/lib/python3.10/site-packages/yfinance/utils.py:775: FutureWarning: The 'unit' keyword in TimedeltaIndex construction is deprecated and will be removed in a future version. Use pd.to_timedelta instead.\\n  df.index += _pd.TimedeltaIndex(dst_error_hours, 'h')\\n\\r[*********************100%%**********************]  1 of 1 completed\\n\", 'role': 'assistant'}, {'content': 'The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\\n\\nSince the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\\n\\nTERMINATE', 'role': 'user'}], summary='The code has executed successfully, and the `yfinance` library has been used to fetch the YTD stock data for META and TESLA. The YTD gain for each stock has been calculated, and a chart should have been plotted to visualize the stock price gains.\\n\\nSince the code has been executed without any errors and the chart should have been displayed in your IPython environment, this completes the task.\\n\\n', cost=({'total_cost': 0.6870599999999999, 'gpt-4': {'cost': 0.6870599999999999, 'prompt_tokens': 18324, 'completion_tokens': 2289, 'total_tokens': 20613}}, {'total_cost': 0.6154499999999999, 'gpt-4': {'cost': 0.6154499999999999, 'prompt_tokens': 17333, 'completion_tokens': 1591, 'total_tokens': 18924}}), human_input=[])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ipy_user = IPythonUserProxyAgent(\n",
    "    \"ipython_user_proxy\",\n",
    "    human_input_mode=\"NEVER\",\n",
    "    max_consecutive_auto_reply=10,\n",
    "    is_termination_msg=lambda x: x.get(\"content\", \"\").rstrip().endswith(\"TERMINATE\")\n",
    "    or x.get(\"content\", \"\").rstrip().endswith('\"TERMINATE\".'),\n",
    "    code_execution_config={\n",
    "        \"use_docker\": False,  # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n",
    "    },\n",
    ")\n",
    "# the assistant receives a message from the user, which contains the task description\n",
    "ipy_user.initiate_chat(\n",
    "    assistant,\n",
    "    message=\"\"\"Plot a chart of META and TESLA stock price gain YTD\"\"\",\n",
    ")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  },
  "vscode": {
   "interpreter": {
    "hash": "949777d72b0d2535278d3dc13498b2535136f6dfe0678499012e853ee9abcab1"
   }
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "2d910cfd2d2a4fc49fc30fbbdc5576a7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "454146d0f7224f038689031002906e6f": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_e4ae2b6f5a974fd4bafb6abb9d12ff26",
        "IPY_MODEL_577e1e3cc4db4942b0883577b3b52755",
        "IPY_MODEL_b40bdfb1ac1d4cffb7cefcb870c64d45"
       ],
       "layout": "IPY_MODEL_dc83c7bff2f241309537a8119dfc7555",
       "tabbable": null,
       "tooltip": null
      }
     },
     "577e1e3cc4db4942b0883577b3b52755": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_2d910cfd2d2a4fc49fc30fbbdc5576a7",
       "max": 1,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_74a6ba0c3cbc4051be0a83e152fe1e62",
       "tabbable": null,
       "tooltip": null,
       "value": 1
      }
     },
     "6086462a12d54bafa59d3c4566f06cb2": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "74a6ba0c3cbc4051be0a83e152fe1e62": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": ""
      }
     },
     "7d3f3d9e15894d05a4d188ff4f466554": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "b40bdfb1ac1d4cffb7cefcb870c64d45": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_f1355871cc6f4dd4b50d9df5af20e5c8",
       "placeholder": "​",
       "style": "IPY_MODEL_ca245376fd9f4354af6b2befe4af4466",
       "tabbable": null,
       "tooltip": null,
       "value": " 1/1 [00:00&lt;00:00, 44.69it/s]"
      }
     },
     "ca245376fd9f4354af6b2befe4af4466": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "StyleView",
       "background": null,
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "dc83c7bff2f241309537a8119dfc7555": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e4ae2b6f5a974fd4bafb6abb9d12ff26": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "2.0.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "2.0.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_allow_html": false,
       "layout": "IPY_MODEL_6086462a12d54bafa59d3c4566f06cb2",
       "placeholder": "​",
       "style": "IPY_MODEL_7d3f3d9e15894d05a4d188ff4f466554",
       "tabbable": null,
       "tooltip": null,
       "value": "100%"
      }
     },
     "f1355871cc6f4dd4b50d9df5af20e5c8": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "2.0.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "2.0.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border_bottom": null,
       "border_left": null,
       "border_right": null,
       "border_top": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
